package fun.tan90.easy.binlog.manager.dataobject;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import fun.tan90.easy.binlog.manager.dataobject.listener.BinlogOutputRuleOnInsertListener;
import fun.tan90.easy.binlog.manager.dataobject.listener.BinlogOutputRuleUpdateListener;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 输出规则 实体类。
 *
 * @author 陈浩杰
 * @since 2023-09-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(value = "binlog_output_rule", onInsert = BinlogOutputRuleOnInsertListener.class, onUpdate = BinlogOutputRuleUpdateListener.class)
public class BinlogOutputRule implements Serializable {

    /**
     * 主键
     */
    @Id
    private String id;

    /**
     * 主库ID
     */
    private String masterId;

    /**
     * 输出库名称正则
     */
    private String schemaRegular;

    /**
     * 输出表名称正则
     */
    private String tableRegular;

    /**
     * 规则状态 1 正常 0 停用
     */
    private String ruleStatus;

    /**
     * 创建人
     */
    private String createId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateId;

    /**
     * 更新时间
     */
    private Date updateTime;

}
